home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / Development Tools & Languages / Macintosh Common Lisp Related / interfaces / PInterface Translator / PInterfaces / Processes.p < prev    next >
Encoding:
Text File  |  1993-09-16  |  5.0 KB  |  178 lines  |  [TEXT/MPS ]

  1. {
  2. Created: Sunday, January 6, 1991 at 10:58 PM
  3.     Processes.p
  4.     Pascal Interface to the Macintosh Libraries
  5.  
  6.         Copyright Apple Computer, Inc.    1989-1990
  7.         All rights reserved
  8. }
  9.  
  10.  
  11. {$IFC UNDEFINED UsingIncludes}
  12. {$SETC UsingIncludes := 0}
  13. {$ENDC}
  14.  
  15. {$IFC NOT UsingIncludes}
  16.     UNIT Processes;
  17.     INTERFACE
  18. {$ENDC}
  19.  
  20. {$IFC UNDEFINED UsingProcesses}
  21. {$SETC UsingProcesses := 1}
  22.  
  23. {$I+}
  24. {$SETC ProcessesIncludes := UsingIncludes}
  25. {$SETC UsingIncludes := 1}
  26. {$IFC UNDEFINED UsingTypes}
  27. {$I $$Shell(PInterfaces)Types.p}
  28. {$ENDC}
  29. {$IFC UNDEFINED UsingEvents}
  30. {$I $$Shell(PInterfaces)Events.p}
  31. {$ENDC}
  32. {$IFC UNDEFINED UsingFiles}
  33. {$I $$Shell(PInterfaces)Files.p}
  34. {$ENDC}
  35. {$SETC UsingIncludes := ProcessesIncludes}
  36.  
  37. TYPE
  38. { type for unique process identifier }
  39. ProcessSerialNumberPtr = ^ProcessSerialNumber;
  40. ProcessSerialNumber = RECORD
  41.     highLongOfPSN: LONGINT;
  42.     lowLongOfPSN: LONGINT;
  43.     END;
  44.  
  45.  
  46. CONST
  47.  
  48. {************************************************************************
  49.  *                            Process identifier.
  50.  ************************************************************************
  51.  Various reserved process serial numbers. }
  52.  
  53. kNoProcess = 0;
  54. kSystemProcess = 1;
  55. kCurrentProcess = 2;
  56.  
  57. TYPE
  58. {*********************************************************************************************************************************************
  59.  *        Definition of the parameter block passed to _Launch.
  60.  *************************************************************************
  61.  
  62. * Typedef and flags for launchControlFlags field }
  63. LaunchFlags = INTEGER;
  64.  
  65. CONST
  66.  
  67. {************************************************************************
  68.  *        Definition of the parameter block passed to _Launch.
  69.  ************************************************************************}
  70.  
  71. launchContinue = $4000;
  72. launchNoFileFlags = $0800;
  73. launchUseMinimum = $0400;
  74. launchDontSwitch = $0200;
  75. launchAllow24Bit = $0100;
  76. launchInhibitDaemon = $0080;
  77.  
  78. TYPE
  79. { Format for first AppleEvent to pass to new process.  The size of the overall
  80.  * buffer variable: the message body immediately follows the messageLength.
  81.  }
  82. AppParametersPtr = ^AppParameters;
  83. AppParameters = RECORD
  84.     theMsgEvent: EventRecord;
  85.     eventRefCon: LONGINT;
  86.     messageLength: LONGINT;
  87.     messageBuffer: ARRAY [0..0] OF SignedByte;
  88.     END;
  89.  
  90. { Parameter block to _Launch }
  91. LaunchPBPtr = ^LaunchParamBlockRec;
  92. LaunchParamBlockRec = RECORD
  93.     reserved1: LONGINT;
  94.     reserved2: INTEGER;
  95.     launchBlockID: INTEGER;
  96.     launchEPBLength: LONGINT;
  97.     launchFileFlags: INTEGER;
  98.     launchControlFlags: LaunchFlags;
  99.     launchAppSpec: FSSpecPtr;
  100.     launchProcessSN: ProcessSerialNumber;
  101.     launchPreferredSize: LONGINT;
  102.     launchMinimumSize: LONGINT;
  103.     launchAvailableSize: LONGINT;
  104.     launchAppParameters: AppParametersPtr;
  105.     END;
  106.  
  107.  
  108. CONST
  109. extendedBlock = $4C43;  { 'LC' }
  110. extendedBlockLen = (sizeof(LaunchParamBlockRec) - 12);
  111.  
  112. {************************************************************************
  113.  * Definition of the information block returned by GetProcessInformation
  114.  ************************************************************************
  115.  Bits in the processMode field }
  116.  
  117. modeDeskAccessory = $00020000;
  118. modeMultiLaunch = $00010000;
  119. modeNeedSuspendResume = $00004000;
  120. modeCanBackground = $00001000;
  121. modeDoesActivateOnFGSwitch = $00000800;
  122. modeOnlyBackground = $00000400;
  123. modeGetFrontClicks = $00000200;
  124. modeGetAppDiedMsg = $00000100;
  125. mode32BitCompatible = $00000080;
  126. modeHighLevelEventAware = $00000040;
  127. modeLocalAndRemoteHLEvents = $00000020;
  128. modeStationeryAware = $00000010;
  129. modeUseTextEditServices = $00000008;
  130.  
  131. TYPE
  132. { Record returned by GetProcessInformation }
  133. ProcessInfoRecPtr = ^ProcessInfoRec;
  134. ProcessInfoRec = RECORD
  135.     processInfoLength: LONGINT;
  136.     processName: StringPtr;
  137.     processNumber: ProcessSerialNumber;
  138.     processType: LONGINT;
  139.     processSignature: OSType;
  140.     processMode: LONGINT;
  141.     processLocation: Ptr;
  142.     processSize: LONGINT;
  143.     processFreeMem: LONGINT;
  144.     processLauncher: ProcessSerialNumber;
  145.     processLaunchDate: LONGINT;
  146.     processActiveTime: LONGINT;
  147.     processAppSpec: FSSpecPtr;
  148.     END;
  149.  
  150.  
  151. FUNCTION LaunchApplication(LaunchParams:LaunchPBPtr):OSErr;
  152.     INLINE $205F,$A9F2,$3E80;
  153. FUNCTION LaunchDeskAccessory(pFileSpec: FSSpecPtr;pDAName: StringPtr): OSErr;
  154.     INLINE $3F3C,$0036,$A88F;
  155. FUNCTION GetCurrentProcess(VAR PSN: ProcessSerialNumber): OSErr;
  156.     INLINE $3F3C,$0037,$A88F;
  157. FUNCTION GetFrontProcess(VAR PSN: ProcessSerialNumber): OSErr;
  158.     INLINE $70FF,$2F00,$3F3C,$0039,$A88F;
  159. FUNCTION GetNextProcess(VAR PSN: ProcessSerialNumber): OSErr;
  160.     INLINE $3F3C,$0038,$A88F;
  161. FUNCTION GetProcessInformation(PSN: ProcessSerialNumber;VAR info: ProcessInfoRec): OSErr;
  162.     INLINE $3F3C,$003A,$A88F;
  163. FUNCTION SetFrontProcess(PSN: ProcessSerialNumber): OSErr;
  164.     INLINE $3F3C,$003B,$A88F;
  165. FUNCTION WakeUpProcess(PSN: ProcessSerialNumber): OSErr;
  166.     INLINE $3F3C,$003C,$A88F;
  167. FUNCTION SameProcess(PSN1: ProcessSerialNumber;PSN2: ProcessSerialNumber;
  168.     VAR result: BOOLEAN): OSErr;
  169.     INLINE $3F3C,$003D,$A88F;
  170.  
  171.  
  172. {$ENDC}    { UsingProcesses }
  173.  
  174. {$IFC NOT UsingIncludes}
  175.     END.
  176. {$ENDC}
  177.  
  178.